Discussione ingenua (e fallace) su misure sperimentali¶

In [1]:
# RUN THIS CELL
from IPython.display import HTML
with open( './style/custom.css', 'r' ) as f: html_style = f.read()
HTML( html_style )
Out[1]:

Vogliamo sapere il peso di un dato oggetto con la massima precisione possibile e nello stesso tempo valutare il possibile errore.

Prima pesata¶

La bilancia dà il valore 3.237 mg

Interpreto (ingenuamente) che questo significhi 3.237 ± 0.001 μg

Seconda pesata¶

La bilancia da il valore 3.230 mg

Se di nuovo, interpreto che questo significhi 3.230 ± 0.001 μg

concludo che le due misure sono incompatibili.

Pesate ripetute¶

Ripeto la pesata altre 98 volte e ottengo 100 valori che scrivo in una lista chiamata data

In [2]:
from random import seed, normalvariate
seed(2)
data = [ 3.228+0.004*normalvariate(0,1) for i in range(100) ]
data = [ round(x,3) for x in data ]
In [3]:
from numpy import histogram, mean
from holoviews import extension, Histogram
extension('bokeh')
frequencies, edges = histogram(data, 18)
histo = Histogram((edges, frequencies))
histo.opts(width=700, tools=['hover'])
Out[3]:

Come interpretare questi valori?¶

Potremmo (arbitrariamente) decidere che il valore vero è la media dei valori misurati

In [4]:
mean(data)
Out[4]:
3.2283

Con che errore?¶

Ma non è corretto dire che il risultato della misura è un numero. È più corretto dire che è un intervallo di valori possibili (in altre parole dobbiamo dichiarare un errore).

Potremmo dire che il peso vero è compreso tra il valore massimo e quello minimo misurato.

In [5]:
min(data), max(data)
Out[5]:
(3.219, 3.237)
In [6]:
# media tra valore massimo e minimo

round((max(data) + min(data)) / 2, 3)
Out[6]:
3.228
In [7]:
# raggio dell' intervallo

round( ( max(data) - min(data) ) / 2 , 3)
Out[7]:
0.009

Possiamo dire 3.228 ± 0.009 ?

Siamo sicuri?¶

Purtoppo nessuno ci garantisce di non misurare mai un valore che esce da questo intervallo.

Un idea balzana (ma non troppo)¶

Proviamno a fissare noi, arbitrariamente un intervallo. Per esempio un intervallo di raggio 0.005 intorno alla media.

Contiamo quante misure capitano nel intervallo (3.2283 - 0.005, 3.2283 + 0.005).

In [8]:
n = 0
for x in data:
    if x > (3.2283 - 0.005) and (3.2283 + 0.005) > x:
        n = n + 1
n
Out[8]:
77

Potremmo interpretare questo dicendo che il valore è 3.2283 ± 0.005 com probailità del 77 %

Il risultato della nostra misura è quindi

  • Un valore
  • Un errore
  • Un livello di confidenza
In [ ]: